<?php

	function show_changepw() {
		
		echo '

			<h1>Passwort ändern</h1>

			<p>Bitte geben Sie Ihren Benutzernamen, Ihr bisheriges Passwort, sowie Ihr neues Passwort ein.</p>

			<form action="index.php?f=changepw" method="post">

				<table class="noborder">

					<tr><th>Benutzername:</th><td><input type="text" name="username" value="'.((isset($_POST['username']))?$_POST['username']:"").'" /></td></tr>

					<tr><th>Bisheriges Passwort:</th><td><input type="password" name="old_password" value="'.((isset($_POST['old_password']))?$_POST['old_password']:"").'" /></td></tr>

					<tr><th>Neues Passwort:</th><td><input type="password" name="password" value="'.((isset($_POST['password']))?$_POST['password']:"").'" /></td></tr>
					<tr><th>Neues Passwort wiederholen:</th><td><input type="password" name="password2" value="'.((isset($_POST['password2']))?$_POST['password2']:"").'" /></td></tr>

					<tr><th></th><td><input type="submit" name="change" value="Passwort ändern" /></td></tr>

				</table>

			</form>

		';
		
	}
	
	
	function checkUsername($username)
	{
		
		if ($username == preg_replace('@[^a-zA-Z0-9\_\.\-]@is', '', $username)) {
			return true;
		} else {
			return false;
		}
		
	}
	
	
	
	
	if (!isset($_POST['username'])) {
		show_changepw();
	} else {
		
		if (checkUsername($_POST['username'])) {

			if (file_exists(config("root")."data/users.xml")) {

				$xmlObj = simplexml_load_file(config("root")."data/users.xml");

				$usersObj = $xmlObj->xpath("user/username[text()='".strtolower($_POST['username'])."']/..");

				if ($usersObj) {

					if (xmldecode($usersObj[0]->password) == $_POST['old_password']) {

						if ($_POST['password'] == $_POST['password2'] AND trim($_POST['password']) != "") {

							$usersObj[0]->password = xmlencode($_POST['password']);

							$save = file_put_contents(config("root")."data/users.xml", $xmlObj->asXML());

							if ($save !== false) {

								echo '

									<h1>Ihr Passwort wurde geändert</h1>

									<p class="success">Ihr Passwort wurde geändert. Sie können sich ab sofort mit Ihrem neuen Passwort anmelden.</p>

								';

							} else {
								error("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.");
								show_changepw();
							}

						} else {
							error("Die neuen Passwörter stimmen nicht überein.");
							show_changepw();
						}

					} else {
						error("Das angegebene bisherige Passwort ist falsch.");
						show_changepw();
					}

				} else {
					error("Es wurde kein Benutzerkonto mit diesem Benutzernamen gefunden.");
					show_changepw();
				}

			} else error("Benutzerliste nicht gefunden. Bitte versuchen Sie es später noch einmal.");

		} else {
			error("Es wurde kein Benutzerkonto mit diesem Benutzernamen gefunden.");
			show_changepw();
		}
		
	}
	
	
	
?>